import { createAPI } from './util'
import axios from 'axios'

// 可以根据NODE_ENV设置不同的值(可以删除, 只是为了兼容1.x脚手架的写法)
let baseUrl = '/'
if (process.env.NODE_ENV === 'production') {
  baseUrl = '/'
}
const http = axios.create({
  timeout: 20000,
  withCredentials: true,
  headers: { 'X-Requested-With': 'XMLHttpRequest' },
  baseUrl
})

// 相应拦截器
axios.interceptors.response.use(function (response) {

  console.log("拦截器");
  // 对错误进行统一处理
  if (response.data.code !== 1) {
    if (!response.config.noMsg && response.data.msg) {
      this.$message.error(response.data.msg)
    }
    return Promise.reject(response)
  } else if (response.data.code === 0 && response.config.successNotify) { // 弹出成功提示
    this.$message.success(response.data.msg || 'success !')
  }
  return Promise.resolve({
    code: response.data.code,
    msg: response.data.msg,
    response: response.data.response
  })
}, function (error) {
  // 对响应错误做点什么
  return Promise.reject(error)
})

// 请求拦截器
http.interceptors.request.use(function (config) {
  // 所有搜索框可输入元素，都不需要去掉前后空格，只有仅输入空格时，此字段搜索无效。(规范: http://10.33.43.73/huidesign/bscs/issues/83)
  config.headers['X-CSRF-TOKEN'] = localStorage.getItem("token")
  return trimOnlySpace(config)
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error)
})

export default createAPI(baseUrl, http)

export {
  http
}